You are on page 1of 78

DEVELOPING FLASH LITE 1.

x
® ™

APPLICATIONS
© 2007 Adobe Systems Incorporated. All rights reserved.

Developing Flash® Lite™ 1.x Applications

If this guide is distributed with software that includes an end user agreement, this guide, as well as the software described in it, is
furnished under license and may be used or copied only in accordance with the terms of such license. Except as permitted by any
such license, no part of this guide may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means,
electronic, mechanical, recording, or otherwise, without the prior written permission of Adobe Systems Incorporated. Please note
that the content in this guide is protected under copyright law even if it is not distributed with software that includes an end user
license agreement.

The content of this guide is furnished for informational use only, is subject to change without notice, and should not be
construed as a commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or liability
for any errors or inaccuracies that may appear in the informational content contained in this guide.

Please remember that existing artwork or images that you may want to include in your project may be protected under copyright
law. The unauthorized incorporation of such material into your new work could be a violation of the rights of the copyright
owner. Please be sure to obtain any permission required from the copyright owner.

Any references to company names in sample templates are for demonstration purposes only and are not intended to refer to any
actual organization.

Adobe, the Adobe logo, Flash Lite, and Flash are either registered trademarks or trademarks of Adobe Systems Incorporated in
the United States and/or other countries.

Third-Party Information
This guide contains links to third-party websites that are not under the control of Adobe Systems Incorporated, and Adobe
Systems Incorporated is not responsible for the content on any linked site. If you access a third-party website mentioned in this
guide, then you do so at your own risk. Adobe Systems Incorporated provides these links only as a convenience, and the inclusion
of the link does not imply that Adobe Systems Incorporated endorses or accepts any responsibility for the content on those third-
party sites.

Sorenson™ Spark™ video compression and decompression technology licensed from


Sorenson Media, Inc.
Fraunhofer-IIS/Thomson Multimedia: MPEG Layer-3 audio compression technology licensed by
Fraunhofer IIS and Thomson Multimedia (http://www.iis.fhg.de/amm/).

Independent JPEG Group: This software is based in part on the work of the Independent JPEG Group.

Nellymoser, Inc.: Speech compression and decompression technology licensed by Nellymoser, Inc. (http:www.nelly-moser.com).

Opera ® browser Copyright © 1995-2002 Opera Software ASA and its suppliers. All rights reserved.

Macromedia Flash 8 video is powered by On2 TrueMotion video technology. © 1992-2005 On2 Technologies, Inc. All Rights
Reserved. http://www.on2.com.

Visual SourceSafe is a registered trademark or trademark of Microsoft Corporation in the United States and/or other countries.

Updated Information/Additional Third Party Code Information available at http://www.adobe.com/go/thirdparty/.

Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA.

Notice to U.S. Government End Users. The Software and Documentation are “Commercial Items,” as that term is defined at 48
C.F.R. §2.101, consisting of “Commercial Computer Software” and “Commercial Computer Software Documentation,” as such
terms are used in 48 C.F.R. §12.212 or 48 C.F.R. §227.7202, as applicable. Consistent with 48 C.F.R. §12.212 or 48 C.F.R.
§§227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software
Documentation are being licensed to U.S. Government end users (a) only as Commercial Items and (b) with only those rights as
are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved under the copyright
laws of the United States. Adobe Systems Incorporated, 345 Park Avenue, San Jose, CA 95110-2704, USA. For U.S.
Government End Users, Adobe agrees to comply with all applicable equal opportunity laws including, if appropriate, the
provisions of Executive Order 11246, as amended, Section 402 of the Vietnam Era Veterans Readjustment Assistance Act of
1974 (38 USC 4212), and Section 503 of the Rehabilitation Act of 1973, as amended, and the regulations at 41 CFR Parts 60-1
through 60-60, 60-250, and 60-741. The affirmative action clause and regulations contained in the preceding sentence shall be
incorporated by reference.
Contents

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
What’s new in Flash Lite authoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Guide to instructional media. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Additional resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Typographical conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Chapter 1: Creating Interactivity and Navigation . . . . . . . . . . . . . . . 9


Keys supported by Flash Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Using tab navigation in Flash Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Handling key events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Handling button events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Using the soft keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Chapter 2: Working with Text and Fonts . . . . . . . . . . . . . . . . . . . .33


About text in Flash Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Using input text fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Font rendering methods in Flash Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Flash Lite rendering quality and anti-aliased text . . . . . . . . . . . . . . . . . 42
Embedding font outlines in SWF files . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Text field example application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Creating scrolling text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Chapter 3: Working with Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . 51


About sound in Flash Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Using device sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Using native Flash sounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Chapter 4: Optimizing content for performance and file size . . 59

Chapter 5: Testing Flash Lite Content . . . . . . . . . . . . . . . . . . . . . . 61


Overview of Flash Lite testing features . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Testing features not supported by the emulator . . . . . . . . . . . . . . . . . . 62
Using the emulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5
Flash Lite content types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Determining platform capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6
Introduction

This manual describes how to develop applications for mobile devices using Macromedia®
Flash® Lite™ 1.0 and Macromedia® Flash® Lite™ 1.1 software from Adobe (collectively called
Flash Lite 1.x). You can use various modes of navigation for different devices and how to work
with text and fonts. This manual also describes how to manage the runtime memory available
to Flash Lite applications running on various models of mobile phones. Using Adobe® Device
Central CS3, the mobile emulator that is included with Adobe® Flash® CS3 Professional, you
can test and debug your application in the authoring tool before you test it on an actual device.

What’s new in Flash Lite authoring


Flash includes the following features to help developers create Flash Lite applications:
Adobe Device Central Adobe Device Central has a mobile emulator that lets you preview
your content as it will function on an actual device. The emulator can configure itself to
mimic the features available on any supported device. The emulator also provides debugging
information that alerts you to potential problems and incompatibilities on the target device.
Device document templates Flash includes document templates to let you quickly start
creating content for specific devices and content types.

7
Guide to instructional media
The Flash Lite documentation package includes the following media to help you learn how to
create Flash Lite applications:
■ Getting Started with Flash Lite 1.x provides an overview of Flash Lite 1.x technology and
developing Flash Lite content for mobile devices. It also includes a step-by-step tutorial
for creating a Flash Lite 1.x application.
■ Developing Flash Lite 1.x Applications is a comprehensive guide to creating Flash Lite 1.x
content, and includes instructions for testing your applications in the Adobe Device
Central emulator.
■ Flash Lite 1.x ActionScript Language Reference describes all the ActionScript language
features available to Flash Lite developers, and provides example code.
■ Learning Flash Lite 1.x ActionScript complements the language reference and provides
additional code examples and an introduction to writing Flash 4 ActionScript, upon
which Flash Lite 1.x ActionScript is based.
■ The Flash Lite sample applications at http://www.adobe.com/go/
learn_flt_samples_and_tutorials demonstrate key concepts and best practices discussed or
mentioned in the written documentation.

Additional resources
For the latest information on developing Flash Lite applications, plus advice from expert
users, advanced topics, examples, tips, and other updates, see the Mobile and Devices
Developer Center at www.adobe.com/go/developer_flashlite.
For TechNotes, documentation updates, and links to additional resources in the Flash Lite
developer community, see the Adobe Flash Lite Support Center at www.adobe.com/go/
support_flashlite.

Typographical conventions
The following typographical conventions are used in this manual:
■ Italic font indicates a value that should be replaced (for example, in a folder path).
■ Code font indicates ActionScript code.
■ Code font italic indicates an ActionScript parameter.
■ Bold font indicates a verbatim entry.
■ Double quotation marks ("") in code examples indicate delimited strings. However,
programmers can also use single quotation marks.

8 Introduction
CHAPTER 1

Creating Interactivity and


Navigation
1
Macromedia Flash Lite 1.0 and Flash Lite 1.1 software from Adobe support user interaction
through the device’s keypad, or through a stylus or touch-screen interface on devices that
provide one.
There are two ways to add key-based interactivity to a Flash Lite application. You can use the
Flash Lite default tab navigation, or you can create a custom key-based navigation system.
Tab navigation functions the same way in Flash Lite as it does in Flash desktop applications,
where the Tab and Shift+Tab keys let users navigate between objects on the screen. In Flash
Lite, the device’s four-way arrow keys serve the same purpose as the Tab and Shift+Tab keys.
Tab navigation in Flash Lite works only with buttons and input text fields; it is typically best
used for simple user interactions, such as menus. For more information, see “Using tab
navigation in Flash Lite” on page 11.
Instead of using tab navigation, you can use custom key navigation. In this case, your
application handles keypress events that Flash Lite generates in response to a user pressing a
key on their device, and then takes the appropriate action. You would use this type of
navigation, for example, if you’re creating a Flash Lite game or other application whose
interaction model is more complex than that of a simple menu.
This chapter contains the following topics:
Keys supported by Flash Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Using tab navigation in Flash Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Handling key events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Handling button events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Using the soft keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

9
Keys supported by Flash Lite
In addition to the alphanumeric keys available on standard telephones, most mobile devices
feature a five-way keypad, which let users navigate and select items on the device’s display as
well as the Left and Right soft keys. A device’s soft keys are multifunctional keys that use the
device’s display to identify their purpose at any moment.
The five-way keypad has four arrow keys (Up, Down, Left, and Right) and a Select key, which
are typically located at the center of the keypad. Different applications can use these keys as
they choose. For example, in a Flash Lite game, the user might press the arrow keys to move a
character on the screen, and then press the Select key to perform another action, such as make
the character jump.
Flash Lite supports the following keys on mobile devices:
■ Five-way keypad keys (Up, Down, Left, Right, and Select)
■ Left and Right soft keys
■ 0-9, *, and # keys
The following images show these keys on a generic keypad and on an actual phone:
Soft keys

5-way keypad

Numeric, #, and
* keys

Not all devices and Flash Lite content types support all these keys. For example, on some
devices, a Flash Lite application can access only the Up and Down arrow keys, not the Left
and Right arrow keys. Also, not all devices and content types allow Flash applications to access
the Left and Right soft keys. When you test your application in Adobe Device Central, you
receive warning messages when you press keys that aren’t available on the target device and
content type.

10 Creating Interactivity and Navigation


Using tab navigation in Flash Lite
On desktop Flash applications, the Tab and Shift+Tab keys let users switch keyboard focus
among objects on the screen. The object that has focus responds to further keypresses. In
Flash Lite, the arrow keys on the device’s five-way keypad serve the same purpose as the Tab
and Shift+Tab keys.
Flash Lite supports three different modes of tab navigation: two-way, four-way, and four-way
with wrap-around. Different devices and Flash Lite content types support different navigation
modes. For more information, see “Modes of tab navigation” on page 11.
Tab navigation in Flash Lite works with buttons and text fields. When an input text field has
focus and the user presses the Select key, Flash Lite opens the device’s generic text input dialog
box, in which the user can enter text. For an example of using input text fields to get user
input, see “Text field example application” on page 45.
This section contains the following topics:
Modes of tab navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
About the focus rectangle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Guidelines for using tab navigation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Modes of tab navigation


Flash Lite supports three modes of tab navigation: two-way, four-way, and four-way with
wrap-around. Different devices and Flash Lite content types support different navigation
modes. For information on determining the navigation mode for a specific device and content
type, see “Determining platform capabilities” on page 73.

Using tab navigation in Flash Lite 11


Each navigation mode discussed in the following sections references a sample file that you can
view using Adobe Device Central. Each sample file consists of the same three-by-three grid of
buttons, as shown below. The only difference between the sample files is that each is
configured to target a device and Flash Lite content type that support the navigation mode
in question.

Array of buttons in sample file

To use each sample file, open it in Adobe Flash CS3 Professional and test it using Adobe
Device Central (select Control > Test Movie). Click the arrow keys on the emulated device’s
keypad (or press the arrow keys on your keyboard) to see how each navigation mode affects
user navigation.
Two-way navigation In two-way navigation, the device’s Up and Down arrow keys move
focus from one object (button or input text field) to another; the Left and Right arrow keys
have no effect. The Down key moves the focus to the next object on the right. If there are no
objects positioned to the right of the current object with focus, focus moves to the leftmost
object below the current object with focus. If there are no objects below the rightmost object
with focus, focus moves to the top and leftmost object. The Up key moves focus to the next
object on the left. If there are no objects to the left of the current object with focus, focus
moves to the rightmost object above the object.
For an example of two-way navigation, see the sample file named 2-way.fla located at
www.adobe.com/go/learn_flt_samples_and_tutorials. On the Samples and Tutorials page,
locate, download and decompress the .zip file for your Flash Lite version, and then navigate to
the Samples folder to access the sample.
Four-way navigation In four-way navigation, the user can move focus from one object to
another with the device’s Left, Right, Up, and Down keys. Pressing the Left key moves the
focus from the current object with focus to the object to the left of the button with focus. The
Right key moves the focus to the next button to the right of the button with focus. The Up
and Down keys similarly move focus to the button above and below the button with focus.

12 Creating Interactivity and Navigation


For an example that uses four-way navigation, see the sample file named 4-way.fla located at
www.adobe.com/go/learn_flt_samples_and_tutorials. On the Samples and Tutorials page,
locate, download and decompress the .zip file for your Flash Lite version, and then navigate to
the Samples folder to access the sample.
Four-way navigation with wrap-around This mode is the same as four-way navigation,
except that when there are no buttons below the rightmost button with focus, focus moves to
the top and leftmost button.

About the focus rectangle


By default, Flash Lite draws a yellow rectangle around the button or input text field that has
focus. The focus rectangle lets the user know which object on the screen will respond when
the user presses the device’s Select key. For example, the following image shows the focus
rectangle drawn around a button that has the current keypad focus:

Button with current focus and


default focus rectangle

For buttons, the focus rectangle’s bounding box is determined by the button’s hit area—
the invisible region that (in Flash desktop applications) defines the part of the button that
responds to mouse clicks. For input text fields, the focus rectangle’s bounding box is
determined by the text field’s dimensions.

Using tab navigation in Flash Lite 13


You can disable the default focus rectangle behavior by setting the _focusRect property to
false. If you’re using buttons that define over states, Flash Lite displays those states when the
button receives focus. For this reason, the focus rectangle is often not necessary when using
buttons. For example, the following image shows the same application as in the preceding
image, but with the focus rectangle disabled; the button that has focus is displaying its
over state:

Button with current focus (focus


rectangle disabled)

If your application contains input text fields, Adobe recommends that you do not disable the
focus rectangle, as it provides the only visual clue that an input text field has focus. For
example, the following image shows an input text field that has the current focus:

Input text field with current focus

If your application contains buttons (with defined over states) and input text fields on the
same screen, you can set the _focusRect property to false in each button’s on(rollOver)
event handler and set it to true in each button’s on(rollOut) handler, as shown in the
following code example. This causes the focus rectangle to appear when an input text field has
focus, but not when a button has focus.

14 Creating Interactivity and Navigation


// Attach this code to each button on the Stage.
on(rollOver) {
_focusRect = false;
}
on(rollOut) {
_focusRect = true;
}

For more information about using input text fields, see “Using input text fields” on page 36.

Guidelines for using tab navigation


When using tab navigation to create interactivity, you should place at least two objects (input
text fields, buttons, or a combination) on the screen at the same time. If the screen only
contains a single button or input text field, the user can’t change the focus and may feel stuck
in the user interface.
If a screen in your application contains only a single button for user interaction, consider
detecting a keypress event rather than using button events. For more information, see
“Handling key events” on page 15.

Handling key events


In addition to using tab navigation between buttons and input text fields, a Flash Lite
application can also respond to arbitrary keypress events.
Not all devices and content types support all device keys. For example, on a device that
supports two-way navigation (see “Modes of tab navigation” on page 11) Flash Lite doesn’t
generate keypress events for the Left and Right Arrow keys.
On all devices, Flash Lite supports the following keys:
■ 0-9, *, and # keys
■ Select key
On devices that support two-way navigation, Flash Lite also supports the Up and Down
Arrow keys on the 5-way keypad. On devices that support four-way navigation, Flash Lite
supports the Up, Down, Left, and Right Arrow keys.
On devices that support the SetSoftKeys command, Flash Lite also supports the Left and
Right soft keys.

Handling key events 15


This section contains the following topics:
Writing a key handler script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Creating a key catcher button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
Creating a simple menu using movie clips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Writing a key handler script


To handle a keypress event, you attach an on(keyPress "key") handler to a button instance,
where key is a supported key event name. For example, the following code, attached to a
button instance on the Stage, executes when the user presses the Right Arrow key on
their device:
on(keyPress "<Right>") {
trace("You pressed the right arrow key");
}

The following table lists the ActionScript keypress event that Flash Lite generates in response
to the user pressing a key on the device:

Device key ActionScript key event Availability


0-9, *, # 0, 1, 2, 3, 4, 5, 6, 7, 8, All devices
-9 , * , #

Select key <Enter> All devices

Left Arrow key <Left> Devices that support four-way


navigation, only.

Right Arrow key <Right> Devices that support four-way


navigation, only.

Up Arrow key <Up> Devices that support four-way


navigation, only.

Down Arrow key <Down> Devices that support four-way


navigation, only.

Left soft key <PageUp> Devices that support the SetSoftKeys


command, only.

Right soft key <PageDown> Devices that support the SetSoftKeys


command, only.

16 Creating Interactivity and Navigation


Creating a key catcher button
If your application must handle several different keypress events you could either create a
single button for each keypress event, or use a single button to handle all keypress events.
This type of button is commonly called a key catcher (or key listener) button. Because the
key catcher button isn’t supposed to be visible to the user, it usually sits off the Stage (in the
work area).
The following procedures demonstrate how to use a key catcher button to handle keypress
events in a simple application. The application lets the user move a circle around the Stage by
pressing the four arrow keys on their device.

To create and use a key catcher button:


1. Create a new document from the Flash Lite 1.1 Series 60 template, and save it as
keycatcher.fla.
For more information on creating documents from the Flash Lite templates, see “Using
Flash Lite document templates” in Getting Started with Flash Lite 1.x.
2. Select the layer in the Timeline named Content.
3. Using the Oval tool, create a oval or circle on the Stage and convert it to a movie clip.
4. With the new movie clip selected, in the Property inspector, type circle in the Instance
Name text box.
5. Using the Text tool, create a text field that contains the text key catcher, and convert it to
a button symbol.
6. Position the new button symbol in the work area around the Stage. To view the work area
around the Stage, select View > Work Area.

Key catcher button

Movie clip instance circle

7. Select the key catcher button instance, and open the Actions panel (Window > Actions).
8. Enter the following code in the Actions panel:
on(keyPress "<Left>") {
circle._x -= 10;

Handling key events 17


}
on(keyPress "<Right>") {
circle._x += 10;
}
on(keyPress "<Up>") {
circle._y -= 10;
}
on(keyPress "<Down>") {
circle._y += 10;
}

9. Test the application by selecting Control > Test Movie.


Press the four arrow keys on the keypad of the Adobe Device Central emulator to make
the circle move around the Stage.
For another example of using a key catcher button, see “Creating a simple menu using movie
clips” on page 18.

Creating a simple menu using movie clips


In this section you’ll learn how to create a simple menu using movie clips. In this method,
rather than relying on the default tab navigation between buttons—and attaching code to
each button—you use a key catcher button to listen for keypress events and update the user
interface as needed. This technique does involve more development work than the button
menu approach (see “Handling key events” on page 15), but it offers some advantages:
■ Control over tab order. Rather than tab order being determined by the Flash Lite player
(as with buttons), you (the developer) can decide what object has focus and how it
responds to keypress events.
■ Maintain menu selection between application states. For example, suppose you want your
application to “remember” the last menu item the user selected so you can return the focus
to the same item at a later time. This isn’t possible using a button menu because you can’t
assign button focus using ActionScript.
In the following procedure, you start with a partially completed Flash document. For a sample
of the completed application (movieclip_menu_complete.fla), see the Flash Lite Samples and
Tutorials page at www.adobe.com/go/learn_flt_samples_and_tutorials. Locate the .zip file for
your version of ActionScript, download and decompress the .zip file, and then navigate to the
Samples folder to access the sample.

18 Creating Interactivity and Navigation


To create a simple menu using movie clips:
1. Download and open the file named movieclip_menu_start.fla located at www.adobe.com/
go/learn_flt_samples_and_tutorials. On the Samples and Tutorials page, locate, download
and decompress the .zip file for your Flash Lite version, and then navigate to the Samples
folder to access the sample.
2. In the Timeline, select the layer named Menu Items.
3. Open the Library panel (Window > Library) and drag an instance of the movie clip symbol
named Menu Item Clip from the Library panel to the Stage.
This movie clip contains two keyframes, or visual states: one for the menu item’s initial,
unselected state, and the other for its selected state, which appears when the menu item
receives focus. The following image shows the first keyframe of the movie clip’s timeline.
It contains a dynamic text field to display the menu item’s label, and a red background
graphic. The text field and background graphic extend across all frames in the movie
clip’s Timeline.

Frame labels

Dynamic text field with variable


name label.

Handling key events 19


The following image shows Frame 5 in the movie clip’s Timeline. The only visual
difference between this frame and the first one is the yellow border highlight that
surrounds the menu item’s red background.

4. Drag two more instances of the menu item movie clip to the Stage and align them vertically
in a column.
5. Select the upper movie clip and, in the Property inspector, type menu_1 in the Instance
Name text box.
6. Assign the instance names of menu_2 and menu_3 to the middle and lower movie
clips, respectively.

menu_1
menu_2
menu_3

The numeric suffix appended to each instance name lets you dynamically refer to each
movie clip in code, which you’ll add shortly.
7. Using the Text tool, create a text field along the lower edge of the Stage.
8. In the Property inspector, select Dynamic from the Text Type pop-up menu, and type
status in the Var text box.
As in the simple menu example, this text field displays a status message about the menu
item that is currently selected.
9. In the Timeline, select the first frame on the layer named Actions.

20 Creating Interactivity and Navigation


10. Open the Actions panel (Window > Actions), and enter the following code:
// Initialize menu item labels:
menu_1.label = "News";
menu_2.label = "Sports";
menu_3.label = "Weather";

// Initialize variable that specifies number of menu items


numItems = 3;

// Initialize selectedItem variable, which contains


// the index of the current menu selection
selectedItem = 1;

// Initialize status text field


currentLabel = eval("menu_" add selectedItem add ":label");
status = "Press to select " add currentLabel;

// Send the first menu item to its "over" state


tellTarget("menu_1") {
gotoAndStop("over");
}

11. In the Timeline, select the layer named Key Catcher.


12. Open the Library and drag an instance of the button named key catcher to the Stage.
Next you’ll attach event handler code to this button that handles user keypress events and
update the user interface.
13. With the button selected on the Stage, open the Actions panel.
14. Type (or copy and paste) the following code into the Actions panel:
on(keyPress "<Down>") {
if(selectedItem < numItems) {
// Turn off highlight on previously selected menu item:
tellTarget("menu_" add selectedItem) {
gotoAndStop("off");
}
// Increment selectedItem variable
// and turn on highlight for new selection
selectedItem++;
tellTarget("menu_" add selectedItem) {
gotoAndStop("over");
}
// Update status text field with label of selected item:
currentLabel = eval("menu_" add selectedItem add ":label");
status = "Press to select " add currentLabel;
}
}

on(keyPress "<Up>") {

Handling key events 21


if(selectedItem > 1) {
// Turn off highlight on previously selected item:
tellTarget("menu_" add selectedItem) {
gotoAndStop("off");
}
// Increment selectedItem and turn on highlight for new selection
selectedItem--;
tellTarget("menu_" add selectedItem) {
gotoAndStop("over");
}
// Update status text field with label of selected item:
currentLabel = eval("menu_" add selectedItem add ":label");
status = "Press to select " add currentLabel;

}
}

on(keyPress "<Enter>") {
// Update status field with selected item
status = "You selected " add currentLabel;

15. Select Control > Test Movie to test the application in the Adobe Device Central emulator.

To interact with the menu, click the Up and Down Arrow keys on the emulator with your
mouse, or press the corresponding arrow keys on your keyboard.

Handling button events


Flash Lite supports the following ActionScript button events: press, release, rollOver, and
rollOut. To handle these events, you attach an on(event) handler to a button instance,
where event is one of the supported button events listed in the following table:

Button event When event is generated


press User presses the Select key on device when button has focus.
release User releases the Select key on device when button has focus.
rollOver Button receives focus.
rollOut Button loses focus.

22 Creating Interactivity and Navigation


The following procedure demonstrates how to create a simple application that handles button
events. For an example of using buttons to create a menu, see “Creating a simple menu using
buttons and tab navigation” on page 25.

To create a button event handler script:


1. Create a new document from the Flash Lite 1.1 Series 60 device template and save it as
button_handler.fla.
For more information on creating documents from the Flash Lite templates, see “Using
Flash Lite document templates” in Getting Started with Flash Lite 1.x.
2. Select Window > Common Libraries > Buttons to open an external library of prebuilt
button symbols.
3. In the Library panel, double-click the Circle Buttons folder to open it.
4. Drag an instance of the Menu button symbol to the Stage.
5. Select the button and open the Actions panel (Window > Actions).
6. Type the following code in the Actions panel:
on(press) {
trace("You pressed Button 1");
}
on(release) {
trace("You released Button 1");
}
on(rollOver) {
trace("Button 1 has focus");
}
on(rollOut) {
trace("Button 1 lost focus");
}

7. Drag another instance of the same button to the Stage and position it directly below the
first button.

Handling button events 23


8. With the second button selected on the Stage, open the Actions panel and enter the
following code:
on(press) {
trace("You pressed Button 2");
}
on(release) {
trace("You released Button 2");
}
on(rollOver) {
trace("Button 2 has focus");
}
on(rollOut) {
trace("Button 2 lost focus");
}

9. In the Timeline, select Frame 1 on the ActionScript layer.


10. Type the following code in the Actions panel:
_focusRect = false;

This disables the yellow focus rectangle that Flash Lite draws around the button with
focus. In this case, the default focus rectangle is unnecessary because the button’s contains
an Over state that is displayed when it has focus.
11. Test the application using the Adobe Device Central emulator (Control > Test Movie).
The emulator displays messages as you press the Up and Down Arrow keys on the keypad.

24 Creating Interactivity and Navigation


Creating a simple menu using buttons and tab
navigation
This section shows you how to create a simple menu using buttons and tab navigation. To
create the menu, you’ll use three button symbols, one for each menu option. You’ll attach
event handling code to each button instance that displays a message when the user rolls over
each menu item—that is, when the user gives focus to the corresponding button—and when
the user selects the menu item by pressing the Select key on their device. For more
information about handling button events in Flash Lite, see “Handling button events”
on page 22.
You’ll start with a partially completed Flash document that is preconfigured to target the
Nokia 7610 and the Standalone Player content type. You can change these settings to target a
different device and content type (see the Adobe Device Central help for more information).

To create a simple menu using buttons:


1. Open the file named simple_menu_start.fla, which is located at www.adobe.com/go/
learn_flt_samples_and_tutorials. On the Samples and Tutorials page, locate, download and
decompress the .zip file for your Flash Lite version, and then navigate to the Samples folder
to access the sample.
2. Open the Library panel (Window > Library).
Notice that the Library contains three buttons symbols named News Button, Weather
Button, and Sports Button.
3. In the Timeline (Window > Timeline), select the layer named Menu Buttons.
4. Drag an instance of the News Button symbol from the Library panel to the Stage.
5. Repeat step 4 for the Sports and Weather buttons.

Handling button events 25


6. Align the three buttons vertically, as the following image shows:

7. In the Tools panel, select the Text tool and create a text field along the bottom of the Stage.
This text field displays a short message when the user rolls over each menu item.
8. With the new text field still selected, do the following in the Property inspector:
a. Select Dynamic Text from the Text Type pop-up menu.
b. Type status in the Var text box.
9. On the Stage, select the News button and open the Actions panel (Window > Actions).
10. In the Actions panel, type the following code:
on(rollOver) {
status = "Press to select News"
}
on(press) {
status = "You selected news"
}

This code assigns some text to the dynamic text field when the user rolls over the News
menu button.

26 Creating Interactivity and Navigation


11. Select the Sports button and type the following code in the Actions panel:
on(rollOver) {
status = "Press to select Sports";
}
on(press) {
status = "You selected Sports";
}
12. Select the Weather button and type the following code in the Actions panel:
on(rollOver) {
status = "Press to select Weather";
}
on(press) {
status = "You selected Weather";
}
13. In the Timeline, select Frame 1 of the layer named Actions.
14. In the Actions panel, type the following code:
_focusRect = false;

This disables the yellow focus rectangle that Flash Lite draws by default around buttons
and text fields that have focus (see “About the focus rectangle” on page 13).
At this point, the Stage should look something like the following image:

15. Select Control > Test Movie to preview the application using the Adobe Device Central
emulator.

Handling button events 27


Click the Down Arrow key with your mouse (or press the Down Arrow key on your
computer’s keyboard) to navigate between menu options; to select a menu item, click the
Select key by using your mouse (or press the Enter key on your computer’s keyboard).

28 Creating Interactivity and Navigation


Using the soft keys
A device’s soft keys are multifunctional keys that use the device’s display to identify their
purpose at any moment. For example, in the following application, labels above the soft keys
indicate that the user can press the Right soft key to view the next dinner special, or press the
Left soft key to return to the application’s home screen:

Soft key labels

To use the Left and Right soft keys, you must first call the SetSoftKeys command (see
SetSoftKeys in Flash Lite 1.x ActionScript Language Reference). Subsequently, Flash Lite
generates a PageDown event when the user presses the Right soft key and a PageUp event when
the user presses the Left soft key. You write ActionScript event handler code that responds to
these events and takes the desired action.
The SetSoftKeys command takes two parameters that specify the labels for the Left and
Right soft keys, respectively, that appear when your application is not running in full-screen
mode. For applications running in full-screen mode, the labels that you specify are not visible,
so you must create your own labels and position them on the Stage where the soft keys
are located.

Using the soft keys 29


For example, consider the following SetSoftKeys command call:
fscommand2("SetSoftKeys", "Options", "Exit");

The following image shows the result of this command on an application running on an
actual device in normal (not full-screen) mode:

Available screen area in non-full-screen applications

Soft key labels displayed by device

If you enable full-screen mode—that is, if you call fscommand("fullscreen", true)—the


labels that you specify as parameters to the SetSoftKeys command are not visible.
Consequently, in full-screen mode applications, you must create your own soft key labels, as
the following image shows:

Custom soft key labels

To use the soft keys in an application:


1. Create a new document from the Flash Lite 1.1 Series 60 device template.
For more information about device templates, see “Using Flash Lite document templates”
on page 16.
2. Open the Device Settings dialog box, and select the Standalone Player content type. Add
one of the devices in the T-Mobile > Nokia folder to your list of test devices.

30 Creating Interactivity and Navigation


3. In the Timeline, select the Content layer.
4. Using the Text tool, create a static text field named Left (or text of your choice) and
position it in the lower-left corner of the Stage, above the Left soft key on the device.
5. Create another static text field named Right, and position it in the lower-right corner of
the Stage, above the Right soft key on the device.
6. Using the Text tool, create another dynamic text field and position it in the middle of
the Stage.
This text field displays a message when you run the application and press the Left and
Right soft keys. Your document’s Stage should look like the following image:

Status message text field

Soft key labels


NOT E

In a real-world application, you might want to use something other than ordinary text
fields for the soft key labels, such as graphic or movie clip symbols.

7. With the status text field still selected, in the Property inspector, type status in the Var
text box.
8. Create a key catcher button (see “Creating a key catcher button” on page 17). In the
Actions panel, attach the following code to the button:
// Handle Left soft keypress event
on(keyPress "<PageUp>") {
status = "You pressed the Left soft key.";
}
// Handle Right soft keypress event
on(keyPress "<PageDown>") {
status = "You pressed the Right soft key.";
}

9. In the Timeline, select Frame 1 on the Actions layer.

Using the soft keys 31


10. In the Actions panel, type the following code:
fscommand2("SetSoftKeys", "Left", "Right");
fscommand2("FullScreen", true);

The two parameters of the SetSoftKeys command—Left and Right, in this case—
specify the labels that Flash Lite displays above the soft keys when the application is not
being viewed in full-screen mode. In this case, the application uses the FullScreen
command (see FullScreen in Flash Lite 1.x ActionScript Language Reference) to force the
application to display in full-screen mode. Consequently, the values you choose for those
parameters can be arbitrary text strings or expressions.
fscommand2("SetSoftKeys", foo, bar);

11. Select Control > Test Movie to test the application using Adobe Device Central.
Click the Left and Right soft keys with your mouse, or press the Page Up and Page Down
keys on your keyboard to test the application.

32 Creating Interactivity and Navigation


CHAPTER 2

Working with Text and Fonts 2


This chapter describes how you can add static and dynamic text fields, and add input text
fields to your Macromedia Flash Lite 1.x from Adobe applications.
This chapter contains the following topics:
About text in Flash Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Using input text fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Font rendering methods in Flash Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Flash Lite rendering quality and anti-aliased text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Embedding font outlines in SWF files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Text field example application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Creating scrolling text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

About text in Flash Lite


Flash Lite supports three types of text fields: static, dynamic, and input. A static text field
has content that doesn’t change during playback. For example, you might use static text fields
to display page titles or labels. For more information about creating a static text field, see
“Text field example application” on page 45.
Dynamic text fields let you control the content at runtime. You can associate an ActionScript
variable name with a dynamic text field that you can refer to in code. For example, if you
are making a calculator in Flash Lite, you would use a dynamic text field to show calculation
results. For more information about using dynamic text fields, see “Assigning a variable name
to a text field” on page 34.
An input text field is like a dynamic text field, except that a user can interact with an input
text field to open the device’s generic input dialog box to provide text input. For more
information about using input text fields, see “Using input text fields” on page 36.

33
About font rendering methods in Flash Lite
To render text on a device’s display, Flash Lite can either use fonts that are available on the
device or use font data that is embedded in the SWF file. Device fonts have the advantage of
smaller SWF file sizes but give less control over the font display. When you embed font data
in the SWF file, you have more control over the font display, but it increases the file size.
For embedded font data, Flash Lite supports both anti-aliased and aliased (bitmap) text,
which makes text more readable at small point sizes. You can also use pixel fonts from third-
party font designers to make small text readable. For more information, see “Font rendering
methods in Flash Lite” on page 40 and “Embedding font outlines in SWF files” on page 43.

Text features in Flash Player not supported in Flash


Lite 1.x
Text fields in Flash Lite 1.x do not support the following features available in desktop versions
of Flash Player:
■ The enhanced font rendering technology available in Flash Player 8 and later.
■ HTML, CSS, or other rich text formatting features.
■ The TextField and TextFormat objects.

Assigning a variable name to a text field


You can associate dynamic and input text fields with an ActionScript variable name, which
lets you get or set the contents of the text using ActionScript.

To associate a variable name with a dynamic or input text field:


1. Create a new document from the Flash Lite 1.1 Symbian Series 60 template and save it as
dynamic_text.fla.
For more information about using Flash Lite document templates, see “Using Flash Lite
document templates” in Getting Started with Flash Lite 1.x.
2. Create a dynamic or input text field on the Stage, and select it.

34 Working with Text and Fonts


3. In the Property inspector, in the Var text box, type nameVar.
The value that you enter must be a valid variable identifier—the first character must be a
letter, underscore (_), or dollar sign ($), and each subsequent character must be a letter,
number, underscore, or dollar sign.

Dynamic text field selected on Stage

Property inspector

Variable name assigned to selected text field

4. In the Timeline, select Frame 1 on the layer named ActionScript.


5. Open the Actions panel (Window > Actions) and enter the following code:
nameVar = "George Washington"

6. Test the application in the Adobe Device Central emulator (Control > Test Movie).
For another example of using dynamic text fields, see “Text field example application”
on page 45.

About text in Flash Lite 35


Using input text fields
Input text fields in Flash Lite, like dynamic text fields, let you get and set their contents at
runtime with ActionScript. In addition, input text fields let Flash Lite applications get user
input using the device’s generic input text dialog box. (Flash Lite does not support inline text
input.) The following image shows an input dialog box on a Symbian Series 60 device:

Input text field

Device’s text input dialog box

To open the device’s input dialog box, the user must first give an input text field focus, and
then press their device’s Select key. By default, Flash Lite draws a yellow rectangle around the
input text field that has focus.
The text input dialog box is modal, which means that the user can’t interact with the Flash
content while the dialog box has focus. Flash Lite also pauses the playhead in the Flash
application while the dialog box has focus.
If the user clicks OK (the Left soft key), the text input dialog box closes, and Flash Lite
automatically assigns the text to the input text field. If the user clicks Cancel (the Right soft
key), no text is assigned to the input text field.

36 Working with Text and Fonts


The Adobe Device Central emulator mimics the features of the text input dialog box when
you test your application in the Adobe Flash CS3. The following image shows the text input
dialog running in the emulator:

Text input dialog running in emulator

For an example of using an input text field in an application, see “Text field example
application” on page 45.

Types of input text fields


Flash Lite supports single line, multiline, and password input text fields. You specify an input
text field’s type by using the Line Type pop-up menu in the Property inspector, as the
following image shows:

The line type that you specify for an input text field determines the behavior of the device’s
input text dialog box when a user edits the text field.

Using input text fields 37


For example, when a user edits a single line input text field, the device’s input text dialog box
displays a single line input text box. The input text box scrolls horizontally if the user enters
more characters than can display. The following image shows a device’s input text dialog box
for a single line input text field:

When a user edits a multiline input text field, the device’s input text dialog box expands as
necessary to display all the text the user enters, as the following image shows:

When a user edits a password input text field, the device’s input text dialog box masks each
character that the user enters with an asterisk (after a short delay).

38 Working with Text and Fonts


Restricting character input
You can use the SetInputTextType command to restrict the characters that the user can
enter in the text input dialog box. For example, suppose an application contains an input text
field for the user to provide a numeric value, such as their age. And furthermore suppose that
the input text field has the variable name of ageVar.
To ensure that the user only enters numeric values into the text input dialog, you could add
the following code to your application:
fscommand2("SetInputTextType", "ageVar", "Numeric");

When the user opens the input text dialog box, they will only be able to enter numeric values
in the text fields.
For more information, see SetInputTextType in Flash Lite 1.x ActionScript Language
Reference.

Input text fields and the focus rectangle


By default, Flash Lite draws a yellow rectangle around the input text field that has keypad
focus, as the following image shows:

You can disable the focus rectangle by setting the global _focusRect property to false.
However, in that case, the user won’t be able to see that the text field has keypad focus and
won’t know to press the Select key on their device. Adobe recommends that you do not
disable the focus rectangle when using input text fields.
For more information about controlling the behavior of the yellow focus rectangle, see
“About the focus rectangle” on page 13 and _focusrect in Flash Lite 1.x ActionScript
Language Reference.

Using input text fields 39


Font rendering methods in Flash Lite
Flash Lite can render text field fonts in any of the following ways:
Use fonts that are available on the device You can apply a font to a text field that you
know is available on the device, or you specify one of the three generic device fonts (_sans,
_serif, or _typewriter) that are available in the Font pop-up menu. If you select a generic
device font, Flash Lite tries to match the selected generic font to a font on the device (for
example, _sans is mapped to a sans serif font, if available) at runtime.
Render the font as a bitmap Flash Lite renders bitmap text by aligning font outlines to
pixel boundaries, which makes text readable at small point sizes (such as 10 points or smaller).
This option requires that you include font outlines in the published SWF file for the selected
font (for more information, see “Embedding font outlines in SWF files” on page 43).
Render the font as anti-aliased vectors Flash Lite renders anti-aliased text using vector-
based representations of font outlines, which you embed in the published SWF file (for more
information, see “Embedding font outlines in SWF files” on page 43).
You select a font rendering method for a text field using the Font Rendering Method pop-up
menu located in the Property inspector. The Font Rendering Method pop-up menu contains
five rendering options; however, only three of those are available to Flash Lite 1.0 and 1.1
developers. The other two methods (Anti-Alias for Readability and Custom Anti-Alias) are
only available to applications that are targeting Flash Player 8 or later.

40 Working with Text and Fonts


To select a font rendering method for a text field:
1. Select a text field on the Stage.
2. In the Property inspector, select one of the following options from the Font Rendering
Method pop-up menu:

■ Select Use Device Fonts to have Flash Lite use a font that is available on the device. No
font data is embedded in the published SWF file.
■ Select Bitmap text (no Anti-Alias) to have Flash Lite align font outlines along pixel
boundaries, which makes small text appear crisp and clear. This option requires that
Flash embed font outlines in the published SWF file (for more information, see
“Embedding font outlines in SWF files” on page 43).
■ Select Anti-Alias for Animation to have Flash Lite anti-alias the text field’s font
according to the current rendering quality setting (for more information, see “Flash
Lite rendering quality and anti-aliased text” on page 42). This option requires that
Flash embed font outlines in the published SWF file (for more information, see “Flash
Lite rendering quality and anti-aliased text” on page 42).
Flash Lite 1.0 and 1.1 do not support the Anti-Alias for Readability or Custom Anti-Alias
font rendering options. Those rendering options are available only in Flash Player 8 and later
on desktop computers.

Font rendering methods in Flash Lite 41


Flash Lite rendering quality and
anti-aliased text
Flash Lite has three rendering quality settings: low, medium, and high. The higher the
rendering quality setting, the more smoothly and accurately Flash Lite renders vector outlines;
a lower quality setting results in less smoothly drawn outlines. By default, Flash Lite rendering
outlines using medium quality. You can control the rendering quality using the SetQuality
command (for more information, see SetQuality in Flash Lite 1.x ActionScript Language
Reference).
Flash Lite renders anti-aliased text using vector representations of font outlines. If you want
anti-aliased text to appear as smooth as possible, you should set the player’s rendering quality
to high. Rendering quality affects all vector content on the screen, not just anti-aliased text.
The following figures show an anti-aliased text field (Arial, 24 point) rendered at high,
medium, and low qualities:

To maximize animation performance and frame rate—for example, during an intensive


animation or tween sequence—you can temporarily set the rendering quality to a lower
setting and return it to the previous setting after the animation has completed.

42 Working with Text and Fonts


Embedding font outlines in SWF files
To render a text field’s font, Flash Lite can either use fonts that are available on the device or
use font outlines that are embedded in the published SWF file (for more information, see
“Font rendering methods in Flash Lite” on page 40). Embedding font outlines in the SWF
file ensures that the text field’s font appears the same on all target platforms, but results in
larger file size. Flash Lite requires font outlines to render either bitmap (no anti-alias) or anti-
aliased text.
For static text fields that use the anti-alias or bitmap font rendering methods, Flash
automatically embeds the font outlines required to display the text field’s contents. For
example, if a static text field contains the word Submit, Flash automatically embeds the font
outlines required to display those six characters (that is, S, u, b, m, i, and t). Because the
contents of a static text field can’t change, the SWF file need only include fonts outlines for
those specific characters.
For dynamic and input text fields that use the anti-alias or bitmap font rendering methods,
you must specify the characters whose font outlines you want to embed in the published SWF
file. The contents of those types of text fields can change during playback; consequently, Flash
can’t assume which font outlines need to be available. You can include font outlines for all
characters in the selected font, a range of characters, or specific characters. You use the
Character Embedding dialog box to specify which characters you want to embed in the
published SWF file.

To embed font outlines for a dynamic and input text field:


1. Select the dynamic or input text field on the Stage.
2. In the Property inspector, select Bitmap (no anti-alias) or Anti-Alias for Animation from
the Font rendering method pop-up menu.

Embedding font outlines in SWF files 43


3. Click the Embed button located next to the Font rendering method menu to open the
Character Embedding dialog box.

4. Select the characters that you want to embed from the list, type the specific characters that
you want to embed in the text box, or click Auto Fill to include the characters present in
the selected text field.
5. Click OK.

44 Working with Text and Fonts


Text field example application
This section describes how to create a simple application that uses static, dynamic, and input
text fields. The application asks the user (using text in a static text field) to provide their name
(using an input text field). After they enter their name and select a button, the application
shows a message (using a dynamic text field) addressed to the user.

To create a text field example application:


1. In Flash, create a new document from the Flash Lite 1-1 - Symbian Series 60
device template.
For more information about creating documents from device templates, see “Using Flash
Lite document templates” in Getting Started with Flash Lite 1.x.
2. In the Timeline (Window > Timeline), select the first frame of the layer named
ActionScript.
3. Open the Actions panel (Window > Actions).
4. Type stop(); in the Actions panel to stop the playhead on that frame.
5. Select the Text tool in the Tools panel to create a text field on the Stage that contains the
text “Your name:”.
6. With the new text field selected, in the Property inspector, select Use Device Fonts from
the Font Rendering Method pop-up menu.
7. Create a new text field below the first one and, in the Property inspector, select Input Text
from the text type pop-up menu, select Use Device Fonts from the Font Rendering
Method pop-up menu, type nameVar in the Var text box, and select the Show Border
Around Text option.
8. Select Window > Common Libraries > Buttons to open a library of prebuilt
button symbols.
9. In the Buttons library, double-click the Circle Buttons folder to open it.
10. Drag an instance of the symbol named “circle button - next” to the Stage.
11. Using the Text tool create another text field at the bottom of the Stage.
This text field will display a message that contains the name the user enters in the input
text field.
12. With the new text field selected, in the Property inspector, type message in the Var text
box, select Dynamic from the Text Type pop-up menu, and select Use Device Fonts from
the Font Rendering Method pop-up menu.

Text field example application 45


The Stage in your application should look similar to the following image:

Static text field


Input text field (nameVar)
Button

Dynamic text field (message)

13. Select the button on the Stage, and open the Actions panel (Window > Actions).
14. Enter the following code in the Actions panel:
on(press) {
message = "Hello, " add nameVar;
}

15. Select Control > Test Movie to test the application in the Adobe Device Central emulator.

a. Press the Down arrow on the emulator’s keypad to give the input text field focus.

46 Working with Text and Fonts


b. Press the Select key on the emulator to open the emulator’s text input dialog box, and
type your name using your computer’s keyboard.

c. Press OK to close the input text dialog box.


d. Press the Down Arrow key on the emulator’s keypad again to give focus to the button,
and press the Select key.

Text field example application 47


Creating scrolling text
Flash Lite 1.1 supports the scroll and maxscroll text field properties, which let you create
scrolling text fields. The scroll property specifies the first visible line in a text block; you can
get and set its value. For example, the following code scrolls the text field whose variable name
is story_text down by five lines:
story_text.scroll += 5;

The maxscroll property specifies the first visible line in a text block when the last line of the
text is visible in the text block; this property is read-only. You can compare a text field’s
maxscroll property to its scroll property to determine how far a user has scrolled within a
text field. This is useful if you want to create a scroll bar that provides feedback about the
user’s current scroll position relative to the maximum scroll position.

To create a scrolling text field and control it with ActionScript:


1. In Flash, create a new document from the Flash Lite 1-1 - Symbian Series 60 device
template.
For more information about creating documents from device templates, see “Using Flash
Lite document templates” in Getting Started with Flash Lite 1.x.
2. Using the Text tool, click the Stage, and then drag a text field approximately the size shown
in the following image on the Stage:

3. Select Multiline from the Line type pop-up menu in the Property inspector.
4. Select Dynamic Text from the Text Type pop-up menu in the Property inspector.
5. Select Use Device Fonts from the Font rendering method pop-up menu in the
Property inspector.
6. Select Text > Scrollable to make the text field scrollable.
7. Type story in the Var text box in the Property inspector. This associates the ActionScript
variable named story with the text field.

48 Working with Text and Fonts


8. Double-click inside the text field, and enter enough text so that one or more lines of text
extend below its lower edge.

9. Create a new button symbol, and add an instance of it to the Stage or in the area off
the Stage.
This button acts as key catcher button, and it doesn’t need to be visible to the user. For
more information about creating key catcher buttons, see “Creating a key catcher button”
on page 17.
10. Select the button, and open the Actions panel (Window > Actions).
11. Enter the following code in the Actions panel:
on(keyPress "<Down>") {
story.scroll++;
}
on(keyPress "<Up>") {
story.scroll--;
}

12. Select Control > Test Movie to test the application in the Adobe Device Central emulator.

Press the Up and Down Arrow keys on your keyboard (or the Up and Down buttons on
the emulator’s keypad) to scroll the text up or down.
For simplicity, this example lets you enter the text field’s content in the authoring tool. But
you can easily modify the example so that the text field’s content is updated using
ActionScript. To do this, you would write ActionScript that assigns the desired text to the
variable name that you assigned to the multiline text field (story, in this example).
story = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed
ipsum. Nam tempus. Nullam sed velit eget sem consectetuer tempor. Morbi
eleifend venenatis pede. Cras ac lorem eget massa tincidunt
iaculis...etc."

Creating scrolling text 49


50 Working with Text and Fonts
CHAPTER 3

Working with Sound 3


Macromedia Flash Lite 1.1 from Adobe supports device sounds and standard, or native, Flash
sound. This chapter describes what you must do to incorporate sound with your applications
on mobile devices.
This chapter contains the following topics:
About sound in Flash Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Using device sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Using native Flash sounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

About sound in Flash Lite


Flash Lite 1.1 supports two types of sound: device sound and standard (native) Flash sound.
Device sounds are stored in the published SWF file in the device’s native audio format, such as
MIDI or MFi. To play the device sound, Flash Lite passes the sound data to the device, which
then decodes and plays the sound. Flash Lite cannot synchronize device sounds with
animation. Flash Lite 1.0 supports only device sounds.
In addition to the device audio formats that are supported by Flash Lite 1.0, Flash Lite 1.1
supports native Flash audio—the same type of sound supported by the desktop version of
Adobe Flash Player. Unlike device sounds, you can synchronize native sounds to animation on
the Timeline.
Flash Lite 1.0 supports MIDI and MFi device audio formats. In addition to these formats,
Flash Lite 1.1 supports the Synthetic music Mobile Application Format (SMAF) device audio
format, as well as native Flash sound compressed with PCM (or WAV), ADPCM, or MP3
audio compression.

51
Event and stream (synchronized) sound
Flash Lite 1.1 supports event and stream (synchronized) sound. Event sounds play
independently of the Timeline and continue to play until either the end of the sound buffer
has been reached, or the sound is stopped using ActionScript. Event sounds must download
completely before they begin playing.
Stream sounds are synchronized with the Timeline on which they reside and are often used to
synchronize audio with animation. Stream sounds stop when the playhead of the containing
Timeline is stopped. During playback, Flash Lite drops frames from the animation, if
required, to keep the sound playback synchronized with animation.
Only native Flash sound can be synchronized with the Timeline; you can use device sounds
only as event sounds. Flash Lite 1.0 supports only event sound.

Using device sound


A device sound is a sound that is encoded in the device’s native audio format, such as MIDI
or MFi. Flash Lite does not let you directly import device sound files into a Flash document;
rather, you first import a proxy sound in a supported format such as MP3, WAV, or AIFF.
You then link the proxy sound to an external mobile device sound, such as a MIDI file.
During the document publishing process, the proxy sound is replaced with the linked external
sound. The SWF file generated contains the external sound and uses it for playback on a
mobile device.
When using device sounds in Flash Lite, keep the following constraints in mind:
■ Device sounds can only be used as event sounds; you can’t synchronize device sounds to
the Timeline.
■ Flash Lite does not support the Effect, Sync, and Edit options for device sounds.
■ You must specify an external device sound file for each sound in a document.
■ As with all external files, the device sound file or the sound bundle file must be available
when you publish your SWF file, but is not needed by the SWF file for playback.
You can also bundle multiple device sounds together in a single file. This is useful if you’re
creating the same content for several devices that support different device sound formats.
For more information, see “Using compound sound” on page 56.
In Flash Lite 1.1, a device sound can play at any time. In Flash Lite 1.0, a device sound can
only play in response to a user pressing a key on their device. For more information, see
“Triggering device sounds in Flash Lite 1.0” on page 55.

52 Working with Sound


The Timeline in the Flash authoring tool displays sound waveforms, as the following image
shows. Waveforms for sounds that are linked to external device sounds are colored green;
waveforms for sounds that are not linked to external device sounds are colored blue.

Sound linked to external device sound


Sound not linked to external
device sound

This section contains the following topics:


Adding a device sound to a button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Triggering device sounds in Flash Lite 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Using compound sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Adding a device sound to a button


The following procedure describes how to add a device sound to a button symbol’s timeline so
that the sound plays then user “clicks” the button (that is, when the user presses the selects on
their device when the button has focus). To do this, you attach the proxy sound to the Down
frame in a button symbol’s timeline. You then associate the device sound that you want to
play with the proxy sound.
A completed version of the application named button_sound_complete.fla is located at http:/
/www.adobe.com/go/learn_flt_samples_and_tutorials. On the Samples and Tutorials page,
locate, download and decompress the .zip file for your Flash Lite version, and then navigate to
the Samples folder to access the sample.

To add a device sound to a Flash document:


1. Create a new document from the Flash Lite 1.0 Symbian Series 60 document template, and
save it as device_sound.fla.
For more information about using the Flash Lite document templates, see “Using Flash
Lite document templates” in Getting Started with Flash Lite 1.x.
2. Select File > Import > Import to Library. On the Samples and Tutorials page at http://
www.adobe.com/go/learn_flt_samples_and_tutorials, locate, download and decompress
the .zip file for your Flash Lite version, and then navigate to the Samples folder. Select the
proxy.wav file and click OK.
This sound file acts as the proxy sound for the device sound that you want to include.
3. Select Window > Common Libraries > Buttons.

Using device sound 53


This opens an external library that contains prebuilt button symbols.
4. In the Buttons library, double-click the Circle Buttons folder to open it.
5. In the Timeline, select the layer named Content in the Timeline.
6. Drag the button symbol named Play from the buttons library to the Stage.
7. Double-click the new button to open it edit mode.
The Timeline changes to show the button’s frames named Up, Over, Down, and Hit.
8. Select Insert > Timeline > Layer to create a new layer.
9. Select Modify > Timeline > Layer Properties, and change the name of the layer to Sound.
10. Select the Down frame in the Sound layer and press the F6 function key to insert a
new keyframe.

New keyframe

11. With the new keyframe selected in the Timeline, in the Property inspector, select
proxy.wav from the Sound pop-up menu.
This attaches the proxy sound to the keyframe.

Property inspector

12. To link the proxy sound with the actual device sound file, do the following:
a. In the Library, double-click the proxy.wav symbol to open the Sound Properties
dialog box.
b. In the Sound Properties dialog box, click the folder icon to the right of the Device
sound text box to open the Select Device Sound dialog box.

54 Working with Sound


c. Browse to http://www.adobe.com/go/learn_flt_samples_and_tutorials. On the
Samples and Tutorials page, locate, download and decompress the .zip file for your
Flash Lite version, and then navigate to the Samples folder and select the file named
hi_hat.mid.

d. Click OK.
13. Select Control > Test Movie to start the Adobe Device Central emulator and test your
SWF file.
In the emulator, press the Down Arrow key on the keypad to give the Play button focus,
and then press the Select key to play the sound.

Triggering device sounds in Flash Lite 1.0


In Flash Lite 1.0, a device sound can only play in response to a user pressing a key on their
device. There are two ways to satisfy this constraint. One way is to attach the sound to the
Down frame in a button symbol’s timeline. When the button has focus, and the user presses
the Select key on their device, Flash Lite plays the sound in the button’s Down frame. For an
example of this technique, see “Adding a device sound to a button” on page 53.
The other way to trigger a device sound in Flash Lite 1.0 is to have the user press a key that
sends the playhead to a frame in the timeline that contains a device sound. Any device sound
at that frame plays when the playhead enters the frame.
For example, suppose your application has a button on the Stage on Frame 1, and a
device sound attached to Frame 10. You attach the following on(press) handler to the
button instance:
on(press) {

Using device sound 55


gotoAndStop(10);
}

The following image shows how the application might look in Flash:

The stop() action

Sound attached to this frame

The gotoAndStop(10) function call attached to button

When the user select the button, the sound on Frame 10 plays. This technique requires that
the device sound be attached to the same frame specified in the gotoAndPlay() function. For
instance, in the example discussed above, if the sound were attached to Frame 11 rather than
Frame 10, Flash Lite would not play the sound when the playback head reached Frame 11.

Using compound sound


Flash Lite 1.1 provides the ability to encapsulate device-specific sounds of multiple formats
into a single tagged data block. This provides content developers with the ability to create a
single piece of content that is compatible with multiple devices. As an example, a single Flash
application can contain the same sound represented in both MIDI and MFi formats. You can
play this Flash application both on a device that supports only MIDI and on a device that
supports only MFi, with each device playing back the specific sound format that it
natively supports.
You use a utility called the Flash Lite Sound Bundler to bundle multiple device sounds into a
single sound bundle (FLS) file. You then add the FLS file to your Flash Lite document the
same way you add a standard device sound, by first importing a proxy sound into your Flash
document, and specifying the sound bundle file to replace the proxy sound at publish time.
For more information about adding device sounds to your Flash Lite applications, see
“Adding a device sound to a button” on page 53.
N OTE

As of this writing, the Sound Bundler utility is only supported by Windows systems.

56 Working with Sound


To create a sound bundle file:
1. Locate and download the Flash Lite Sound Bundler application (FlashLiteBundler.exe) at
www.adobe.com/go/developer_flashlite.
The Sound Bundler appears as a floating window.

2. From your desktop, drag the first sound file to be bundled into the floating window.
The Flash Lite 1.1 Sound Bundler window appears. The upper part of the Sound Bundler
window is a list of the files you added to the sound bundle. The lower part of the window
contains information about the sounds in the sound bundle, including sound format, size
of sound data, and filename.

List of files in sound bundle

Information about files in sound bundle

3. Drag the rest of the sound files that you want to bundle into the window.
You can’t bundle more than one file in a given audio format. For example, you can’t
bundle two MIDI files in the same FLS file.
4. To delete a file from the sound bundle, select in the list of sound files and click Delete. To
delete all files in the sound bundle, click Delete All.

Using device sound 57


5. Click Save Bundle to save the FLS file.
6. To exit from the Sound Bundler, right-click on the Sound Bundler window and select Exit.

The next step is to add the sound bundle (FLS) file to your Flash document. The process is
the same as adding standard device sounds to Flash documents, except that instead of
specifying a single device sound file to replace the proxy sound, you specify the FLS file that
you created. For more information, see “Using device sound” on page 52).

Using native Flash sounds


Flash Lite 1.1 supports standard, or native, Flash sounds, in addition to the device sound
formats supported by Flash Lite 1.0. Native sound in Flash Lite 1.1 can play either as event
sound or synchronized sound (see “Event and stream (synchronized) sound” on page 52).
The general workflow for adding native sounds to your Flash Lite 1.1 content is the same as
for Flash desktop applications, with the following exceptions:
■ Flash Lite does not support loading external MP3 files.
■ Flash Lite does not support the Sound object.
■ Flash Lite does not support the Speech audio compression option (see “Compressing
sounds for export” in Using Flash).
For more information about working with native sound in Flash, see the following topics in
Using Flash:
■ “Importing sounds” in Using Flash.
■ “Adding sounds to a document” in Using Flash.
■ “Starting and stopping sounds at keyframes” in Using Flash.
■ “Compressing sounds for export” in Using Flash.

58 Working with Sound


CHAPTER 4

Optimizing content for


performance and file size
4
To optimize your Flash content, you must pay attention to basic principles. For example,
Flash developers have often had to avoid extremely complex artwork, excessive tweening, and
overusing transparency.
Although earlier versions of Flash have resolved most of these performance issues for the
desktop, Adobe Flash Lite developers still face additional challenges due to limitations of
mobile devices: some devices perform better than others, sometimes dramatically, and because
mobile authoring often requires publishing to many different devices, developers must
sometimes author for the lowest common denominator.
Optimizing mobile content often requires making trade-offs. For example, one technique
might look better, while another results in better performance. As you measure these trade-
offs, you will be going back and forth repeatedly between testing in the emulator and testing
on the target device.
In earlier versions of Flash, the emulator for Flash Lite 1.x was part of the Flash authoring
environment. In Flash CS3, the emulator functionality is part of Adobe® Device Central CS3.
Device Central lets you emulate your Flash Lite projects on a variety of devices, and can
emulate device display, memory use, and performance on specific devices. For complete
information about using the emulator to optimize your Flash Lite content for mobile devices,
see “Best practices for content on mobile devices” in the Device Central documentation.

59
60 Optimizing content for performance and file size
CHAPTER 5

Testing Flash Lite Content 5


Adobe Flash CS3 Professional includes an Adobe Flash Lite emulator, available on Adobe
Device Central CS3, which lets you test your application in the authoring tool as it will
appear and function on an actual device. When you’re satisfied with the application running
in the emulator, you can test it on an actual device. This chapter describes the Flash Lite
testing and debugging features that are available in Flash.
This chapter contains the following topics:
Overview of Flash Lite testing features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Testing features not supported by the emulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Using the emulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Flash Lite content types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Determining platform capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Overview of Flash Lite testing features


The Flash Lite testing features in Flash CS3 Professional are part of Adobe Device Central,
which includes both an extensive database of device profiles and a device emulator. Device
Central also works with many other Adobe products, such as Adobe Creative Suite® and
Adobe Dreamweaver.®
The Adobe Device Central emulator lets you preview your Flash Lite content within the Flash
authoring tool. The emulator is configured to match the behavior and appearance of the
target device. You use the Device Central interface to select and manage your target devices, as
well as to specify your application’s target Flash Lite content type, such as ring tone, browser,
or stand-alone application. In Device Central, each combination of test device and Flash Lite
content type defines a device configuration that specifies what features are available to your
application, such as supported audio formats, ability to make network connections, and other
features. For more information about the Flash Lite content types, see “Flash Lite content
types” on page 66.

61
See the Device Central help for more information, including details about interacting with
the emulator.

Testing features not supported by the


emulator
The Adobe Device Central emulator does not support all the features available in the standard
(desktop) test window. The following is a list of features available in the desktop Flash test
window that are not available in the Adobe Device Central emulator:
■ The List Variables (Debug > List Variables) and List Objects (Debug > List Objects)
features
■ The Bandwidth Profiler, and Streaming and Frame by Frame graphing features
■ The View > Simulate Download menu command
■ The ActionScript debugger
■ The View > Show Redraw Regions menu command
■ The Controller toolbar (Window > Toolbars > Controller)

Using the emulator


To start the emulator, choose Control > Test Movie in the Flash authoring tool, the same way
you preview your Flash desktop content. However, Adobe Device Central has a different
appearance and functionality than the test window for Flash desktop content.
This section contains the following topics:
■ “Testing features not supported by the emulator” on page 62
■ “Invoking Adobe Device Central” on page 63
■ “Setting emulator debug options” on page 64
■ “About screen size and available Stage size” on page 70
■ “Errors” on page 70

62 Testing Flash Lite Content


Invoking Adobe Device Central
After you choose Control > Test Movie or press Ctrl+Enter to start Device Central, a progress
bar appears to indicate that Flash is exporting your SWF to Device Central. Once the export
is complete, Device Central launches with the focus on the emulator, and loads your SWF:

In Device Central, the Device Sets list shows all target devices that Flash saved with your
application. By default, the first device in the set is selected for emulation. The content type
selected is the content type that was saved with the application when you created it (for details
about the Flash Lite content types, see “Flash Lite content types” on page 66).
You can test the application with a different content type and different devices. Changing the
content type and adding or removing devices from the device set automatically changes the
device settings in Flash.
To test how the content appears on a different device, double-click another device in either
the top or bottom list. A spinning icon appears next to the device you are testing, and the
emulator changes to display your application running in the device you selected.

Using the emulator 63


Setting emulator debug options
The Adobe Device Central emulator can send debugging messages to the Flash Output panel
while content is running; the emulator also displays a pop-up version of the Output panel
showing the same messages.
The emulator reports the following types of information:
Trace messages that are generated by a trace() function call within your Flash Lite
application. For more information about using trace(), see trace() in Flash Lite 1.x
ActionScript Language Reference.
Information messages that contain general information about the selected test device, SWF
file size, and other information. These messages appear in the emulator’s Alert panel.
Warning messages that contain information about problems with your Flash Lite content
that might affect playback.
You can filter the type of information that the emulator generates as follows.

To set Flash Lite output options:


1. Select Control > Test Movie. Flash exports your application to Adobe Device Central and
displays it in the emulator.
2. Select View > Flash Output > Show in Device Central.
■ Select or deselect the Trace option.
■ Select or deselect the Information option.
■ Select or deselect the Warnings option.

64 Testing Flash Lite Content


Interacting with the emulator
You can use your computer mouse or use keyboard shortcuts to interact with the emulator’s
keypad. You can interact with the following keys on the emulator’s keypad:
■ Number keys (0 to 9), and the asterisk (*) and pound (#) keys
■ Navigation keypad (left, right, down, up, and select)
■ Left and right soft keys

Soft keys

Select key
Navigation keypad

Other supported keys

You can use your mouse to click the emulator’s keypad directly, or you can use the following
equivalent keyboard shortcuts:
■ The arrow keys on your keyboard (left, right, up, down) map to the corresponding
navigation keys on the emulator’s navigation keypad.
■ The Enter or Return key corresponds to the emulator’s select key.
■ The Page Up and Page Down keys correspond to the emulator’s left and right soft keys,
respectively.
■ The number keys on your keyboard map to the corresponding number keys on the
emulator keypad.
For additional details about interacting with the emulator to test your application, see the
Adobe Device Central online help.

Using the emulator 65


Flash Lite content types
As discussed in “About Flash Lite content types” in Getting Started with Flash Lite 1.x, Flash
Lite is installed on a variety of devices. Each Flash Lite installation supports one or more
application modes, or content types. For example, some devices use Flash Lite to enable screen
savers or animated ring tones that are based on Flash. Other devices use Flash Lite to render
Flash content that is embedded in mobile web pages.
The following table lists and describes all the Flash Lite content types available as of this
writing. As discussed in “Flash Lite 1.x availability” in Getting Started with Flash Lite 1.x, most
of the content types are only available in a specific geographic region or from specific mobile
operators. The third column in the table provides the availability of each content type by
region and mobile operator. For additional and up-to-date information about Flash Lite
content type availability, see the Flash Enabled Mobile Device page at www.adobe.com/go/
mobile_supported_devices.
Flash Lite supports the following content types:

Flash Lite Description Availability


content type
Address Book Uses Flash Lite to let users associate a NTT DoCoMo and Vodafone
SWF file with an entry in their device’s (Japan only)
address book application.

Alarm Uses Flash Lite to let the user select a KDDI and Vodafone (Japan
SWF file to play for the device’s alarm. only)

Browser Uses Flash Lite to render Flash content NTT DoCoMo, KDDI, and
embedded in mobile web pages and Vodafone (Japan only)
viewed in the device’s web browser.

Calling History Uses Flash Lite to display an image or KDDI (Casio phones only)
animation associated with each entry in
the user’s address book, along with
their name and phone number.

Calling Screen Uses Flash Lite to display an animation NTT DoCoMo and KDDI
when the user receives a call or makes (Japan only)
a call.

Chaku Flash Uses Flash Lite to let user select SWF KDDI (Japan only)
file to play as the ringtone for incoming
calls.

66 Testing Flash Lite Content


Flash Lite Description Availability
content type
Data Box Uses Flash Lite to render Flash content NTT DoCoMo, KDDI, and
in the device’s Data Box application, Vodafone (Japan only)
which lets the user manage and
preview multimedia files on the device.

Data Folder Uses Flash Lite to render Flash content KDDI (Japan only)
in the device’s Data Folder application,
which lets the user manage and
preview multimedia files on the device.

Icon Menu Uses Flash Lite to let the user select KDDI (Casio phones only)
custom icon menus for the device's
launcher .

Image Viewer Use the Image Viewer application that NTT DoCoMo (Japan only)
lets the user manage and preview
multimedia files on the device, including
SWF files.

Incoming Call Uses Flash Lite to display an animation NTT DoCoMo, KDDI, and
when the user receives a call. Vodafone (Japan only)

Mailer Uses Flash Lite to display an animation Vodafone (Japan only)


when the user sends or receives an e-
mail message.

Multimedia Uses Flash Lite to preview SWF files KDDI (Japan only)
(as well as other multimedia formats).

My Picture Uses My Picture application that lets NTT DoCoMo (Japan only)
the user manage and preview SWF
files on the device, as well as other
image formats.

OpenEMIRO Displays Flash Lite content when the KDDI (Casio devices only)
device is returning from Standby mode.
This is similar to the Wake Up Screen
content type on other devices.

Screen Saver Uses Flash Lite to display the device’s KDDI and Vodafone (Japan
screen saver. only)

SMIL Player Uses Flash Lite to preview SWF files KDDI (Japan only)
(as well as other multimedia formats).

Flash Lite content types 67


Flash Lite Description Availability
content type
Standalone Player Makes Flash Lite available as a stand- Available globally for select
alone application so that the user can Symbian Series 60 and UIQ
launch and view arbitrary SWF files that devices.
reside on the device or that the user
receives in the messaging in-box.

Standby Screen Uses Flash Lite to display the device’s NTT DoCoMo and KDDI
Standby Screen (or wallpaper screen). (Japan only)

Sub LCD Uses Flash Lite to display content on KDDI (Japan only)
the external or secondary screen
available on some flip phones.

Wake Up Screen Uses Flash Lite to display an animation NTT DoCoMo (Japan only)
as the phone is starting.

68 Testing Flash Lite Content


Flash Lite specific information in the emulator
The emulator includes panels that supply information specific to your Flash Lite application.
The panels appear along the right side of the window; you can collapse and expand them as
you do in Flash.

■ The Content Type panel shows the default content type for your application and allows
you to select other applicable content types.
■ The File Info panel displays the filename, Flash file version, dimensions, and size in
kilobytes.
■ The Alert panel appears when there is a problem and displays warning messages.
■ The Memory and Performance panels show the size of static and dynamic memory and
allow you to adjust various parameters to tune your application for performance.
■ The Device Status panel shows the values of various platform-specific (fscommand())
settings, such as time zone and battery level.
■ The Network panel displays information about your network connectivity.

Flash Lite content types 69


■ The Persistent Storage panel shows you how much storage on the device has been used.
This is a per-device value: if multiple applications write to the persistent storage, the value
is the sum of all their data. You can click Empty to clear the store for that particular
device, in order to remove the persistent objects for all content that ran on that device.
For details about these panels and how to use them, see the Adobe Device Central online help.

About screen size and available Stage size


Each combination of target device and Flash Lite content type determines, among other
things, the available screen area that a Flash Lite application can occupy. The available Stage
area can be equal to, or less than, the device’s full screen size.
For example, the Stage area that is available to a SWF file running in full-screen mode in the
stand-alone player on a Nokia Series 60 device is equal to the device’s full screen size (176 x
208 pixels). On other devices (such as those available in Japan), the Stage area that is available
to a SWF file running in one of the specialized content types (such as Address Book or
Screensaver) might be less than the device’s total screen size. For example, the Fujitsu 700i has
a screen size of 240 x 320 pixels; however, a SWF file running in the device’s Address Book
application has 96 x 72 pixels of available Stage area.
If a SWF file’s actual dimensions are different from the available Stage dimensions, the Flash
Lite player scales the content (proportionately) to fit within the available Stage area. When
you test your content in the emulator, the emulator also warns if your application’s Stage size
is different from the available Stage area.
To avoid any undesired scaling issues, Adobe recommends that your Flash document’s Stage
dimensions match the available Stage area for the selected test device and content type.

Errors
The Adobe Device Central emulator can generate alerts as you test your content. One type of
alert appears only in the emulator and is intended to provide information about actual or
potential errors; the other type of alert occurs in both the emulator and on an actual device.
The first type of alert provides debugging information about your SWF file. For example, if
your SWF file contains ActionScript that isn’t supported by Flash Lite (or by the version of
Flash Lite available on the currently selected test device), the emulator generates an alert.

70 Testing Flash Lite Content


The other type of message that can occur in the emulator also occurs on an actual device.
These types of errors are displayed in an error dialog box that the user must close for the
application to continue. The following image shows an example error dialog box as it appears
in the emulator:

On a device, the error dialog box that appears contains the string “Problem with content”
followed by an error number. In the emulator, the error dialog box also contains a short error
string. The emulator also displays a longer description of the error in the Output panel.
The following table lists all the errors that occur in the Flash Lite player, including error
numbers, the short descriptions that appear in the error dialog box, and the longer
descriptions that appear in the Output panel:

Error Error string Description and possible causes


number
1 Out of Memory. The emulator has run out of heap memory. Unless
otherwise specified, the emulator allocates 1 MB
of memory for a SWF file to use.

2 Stack Limit Reached The emulator has detected that its stack limit has
been reached or exceeded. This could be caused
by various reasons, including multiple levels of
nested movie clips or complicated vector
drawings.

3 Corrupted SWF The emulator has detected that the SWF data is
corrupted.

4 ActionScript Stuck. The emulator has detected that certain


ActionScript code in the SWF file is taking too
long to execute. As a result the emulator has
stopped executing the ActionScript code.

5 ActionScript Processing. The emulator has detected an ActionScript error,


such as a reference to a nonexistent movie clip.

Errors 71
Error Error string Description and possible causes
number
6 ActionScript Infinity Loop. The emulator has detected an infinite loop or
deeply nested ActionScript (for example, deeply
nested if..else statements).

7 Invalid Frame Buffer The emulator has detected an invalid frame


buffer.

8 Invalid Display Rect The emulator has detected an invalid display


rectangle.

9 Invalid Frame Number The emulator has detected that the SWF file has
attempted to move to or resolve an invalid frame
number.

10 Invalid Key The emulator has detected an invalid key input.

11 Bad JPEG Data The emulator has detected that JPEG or PNG
data in the SWF file is corrupted, there is not
enough memory to decode the JPEG data, or the
format of the JPEG data is not supported.

12 Bad Sound Data. The emulator has detected that the SWF file
contains an unsupported sound data format.

13 Root Movie Unloaded. The emulator has detected that the root movie
has been unloaded and was not replaced with
another SWF file.

72 Testing Flash Lite Content


Determining platform capabilities
Each combination of target device and Flash Lite content type defines a set of available Flash
Lite features, such as navigation type, supported device sound formats, or input text support.
When the Information debug option is enabled in the emulator settings pane, the emulator
generates a list of platform capabilities for the currently selected device and content type. For
more information on setting debug options, see “Setting emulator debug options”
on page 64.
The following table describes the Flash Lite platform capabilities as they are reported in the
Output panel when you test your application in the emulator:

Capability name Description and possible values


DeviceSoundKeyOnly Indicates if the device plays device sounds only in response to the
user pressing a key on the device (Yes), or independently of any user
action (No). For more information, see “Triggering device sounds in
Flash Lite 1.0” on page 55.

DeviceSoundsOrdered A comma-delimited list of device sound formats that the platform


supports. The order of the sound formats indicates what sound Flash
Lite plays if a SWF file contains a sound bundle file with multiple
sound formats. For more information about sound bundles, see
“Using compound sound” on page 56.

FSCommand Indicates how frequently Flash Lite processes fscommand() or


fscommand2() function calls. Valid values are as follows:
OnePerKey: Only one fscommand() call is allowed for each keypress.
OnePerKeyPerFrame: Only one fscommand() call is allowed per
event handler or per frame.
All: No restriction on how frequently fscommand() can be called.
None: The fscommand() function is not supported.

InputText Indicates if platform supports input text (Yes) or not (No). For more
information about input text, see “Using input text fields”
on page 36).

LoadMovie Indicates how frequently Flash Lite processes loadMovie() function


calls. Valid values are as follows:
OnePerKey: Only one loadMovie() call is allowed for each keypress.
OnePerKeyPerFrame: Only one loadMovie() call is allowed per
event handler or per frame.
All: No restriction on how frequently loadMovie() can be called.
None: The loadMovie() function is not supported.

Determining platform capabilities 73


Capability name Description and possible values
LoadVars Indicates how frequently Flash Lite processes loadVariables()
function calls. Valid values are as follows:
OnePerKey: Only one loadVariables() call is allowed for each
keypress.
OnePerKeyPerFrame: Only one loadVariables() call is allowed per
event handler or per frame.
All: No restriction on how frequently loadVariables() can be called.
None: The loadVariables() function is not supported.

Loop Indicates if SWF content loops (return to the first frame in the
timeline) when it reaches the end of its timeline (Yes) or stops on the
last frame (No).

MultipleDeviceSound Indicates if the device supports mixing of multiple device sounds


(Yes) or not (No).

NativeSounds This is a non-ordered list of sound formats the Flash Lite


player can play natively (as opposed to device sounds which are
passed from the Flash Lite player to the device for playback).
Possible values: NativeSound_PCM, NativeSound_ADPCM and
NativeSound_MP3.

NavigationType Indicates the navigation mode supported by the platform: two-way,


four-way, or four-way with wrap-around. For more information about
navigation modes, see “Modes of tab navigation” on page 11. Valid
values are as follows:
2Way: Up and Down Arrow keys supported only.
4Way: All four arrow keys (Up, Down, Left, and Right) are supported
for navigation.
4WayWrapAround: Same as 4Way except that focus wraps
around to the top of the display.

SMS Indicates if Flash Lite supports sending SMS messages (Yes) or not
(No).

getUrl Indicates how frequently Flash Lite processes getURL() function


calls. Valid values are as follows:
OnePerKey: Only one getURL() call is allowed for each keypress.
OnePerKeyPerFrame: Only one getURL() call is allowed per event
handler or per frame.
All: No restriction on how frequently getURL() can be called.
None: The getURL() function is not supported.

74 Testing Flash Lite Content


Capability name Description and possible values
keySet Indicates what key events are supported by Flash Lite on the device.
For more information about handling key events, see “Handling key
events” on page 15. Valid values are as follows:
All: All key events are handled:
Phone: Only events associated with the 0-9, #, *, Select, and four-
way navigation keys are handled.

mouseType Indicates what mouse events are supported by Flash Lite. Valid
values are as follows:
None: No mouse events are supported.
Partial: The press, release, rollOver, and rollout events are
supported; releaseOutside, dragOut, and dragOver events not
supported.
Mouse: The Mouse Up/Mouse Down/Mouse Move messages are
processed. One example is an NTT DoCoMo phone with the virtual
cursor feature. This means mouse-move should trigger the rollOver/
rollOut event.

soundEnabled Indicates if sound is enabled on the device (Yes) or not (No).

Determining platform capabilities 75


76 Testing Flash Lite Content
Index

A and text fields 42


default rendering quality 42
Adobe Device Central emulator font rendering methods
debug options 64 about 40
application modes, in Flash Lite 66 applying to text fields 40

B I
button events input text fields
about 22 and the focus rectangle 39
handling 22 example application 45
restricting characters in 39
interactivity
C creating a menu with buttons 25
content types in Flash Lite, described 66 creating a menu with movie clips 18
creating, with buttons 22
detecting keypresses 17
D handling keypress events 15
device sound tab navigation 11
about 52 using the soft keys 29
adding 53
triggering in Flash Lite 1.0 55
K
keypress events
E ActionScript key codes 16
embed font outlines creating a key catcher button 17
about 43 handling with ActionScript 15
how to 43 supported keys 10
writing a key handler script 16

F
Flash Lite emulator M
features unsupported by 62 menus
interacting with 65 creating with buttons 25
previewing applications with 62 creating with movie clips 18
warning and error messages 70 message URL http
Flash Lite rendering quality

77
//www.adobe.com/go/
learn_flt_samples_and_tutorials 8

N
native sound, about 58
navigation. See tab navigation

P
platform capabilities, determining 73

S
soft keys
SetSoftKeys command 29
using 29
sound
about 51
compound 56
device 52
device and native 51
event and streaming 52
Sound Bundler utility 56
Sound Bundler utility, using for compound sounds 56
Stage, screen size and available 70

T
tab navigation
about 11
example application using 25
focus rectangle 13
four-way 12
four-way with wrap-around 13
guidelines for 15
modes of 11
two-way 12
text fields
creating scrolling text 48
font rendering methods, about 34
input text fields, using 36
restricting characters in input text fields 39

78

You might also like